﻿namespace MVC高级教程.Service.Impl
{
    public class StudentService : IStudentService
    {

        //大家一定要注意
        //但凡是要创建对象，优先从IOC容器中拿，这样可以不用考虑它创建的过程需要什么构造参数
        //只有创建Model(视图Model，DataModel)我们才可以使用new的方式来创建对象
        //像创建服务，创建控制器对象，创建Razor视图对象，创建数据访问层Repository对象，等等...都要考虑以依赖注入的方式创建(从IOC容器中拿)
        #region  构造函数依赖注入
            //private readonly IHttpContextAccessor _contextAccessor;
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="contextAccessor"></param>
            public StudentService()
            {
               // _contextAccessor = contextAccessor;
            }
        #endregion



       
        /// <summary>
        /// 通过注入的方式拿到IHttpContextAccessor接口对象
        /// </summary>
        public string Print()
        {
            //HttpContext httpContext =new HttpContext();   注意：不能这样直接创建HttpContext类的实例，就算创建出来了，对象的内容也是空的
            //HttpContext的对象可以通过参数传递过来，但是这种方式不推荐，意味着每次调用都要把上下文以参数形式传过来

            //通过注入的IHttpContextAccessor接口拿到了当前应用程序的上下文HttpContext
            //var studentName = _contextAccessor.HttpContext.Request.Query["studentName"].ToString();
            return "启动了学生服务";
        }


        /// <summary>
        /// 如果不能注入，那也可以拿到IHttpContextAccessor接口对象
        /// </summary>
        public void Save1()
        { 
          
        }

        
    }
}
